<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9"/>
<title>MSC for Windows&amp;Linux API: qtts.h 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">MSC for Windows&amp;Linux API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.9 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>首页</span></a></li>
      <li class="current"><a href="files.html"><span>文件</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="搜索" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>文件列表</span></a></li>
      <li><a href="globals.html"><span>文件成员</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">函数</a>  </div>
  <div class="headertitle">
<div class="title">qtts.h 文件参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>iFLY Speech Synthesizer Header File  
<a href="#details">更多...</a></p>

<p><a href="qtts_8h_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:a3fba4ad9599445073335851cc9479542"><td class="memItemLeft" align="right" valign="top">const char *MSPAPI&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qtts_8h.html#a3fba4ad9599445073335851cc9479542">QTTSSessionBegin</a> (const char *params, int *errorCode)</td></tr>
<tr class="memdesc:a3fba4ad9599445073335851cc9479542"><td class="mdescLeft">&#160;</td><td class="mdescRight">开始一次语音合成，分配语音合成资源。  <a href="#a3fba4ad9599445073335851cc9479542">更多...</a><br /></td></tr>
<tr class="separator:a3fba4ad9599445073335851cc9479542"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b7d146d6a35341d4d73efd720ae987b"><td class="memItemLeft" align="right" valign="top">int MSPAPI&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qtts_8h.html#a5b7d146d6a35341d4d73efd720ae987b">QTTSTextPut</a> (const char *sessionID, const char *textString, unsigned int textLen, const char *params)</td></tr>
<tr class="memdesc:a5b7d146d6a35341d4d73efd720ae987b"><td class="mdescLeft">&#160;</td><td class="mdescRight">写入要合成的文本。  <a href="#a5b7d146d6a35341d4d73efd720ae987b">更多...</a><br /></td></tr>
<tr class="separator:a5b7d146d6a35341d4d73efd720ae987b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e4f6bed4b9e4ea553aa00ccf539c22a"><td class="memItemLeft" align="right" valign="top">const void *MSPAPI&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qtts_8h.html#a4e4f6bed4b9e4ea553aa00ccf539c22a">QTTSAudioGet</a> (const char *sessionID, unsigned int *audioLen, int *synthStatus, int *errorCode)</td></tr>
<tr class="memdesc:a4e4f6bed4b9e4ea553aa00ccf539c22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取合成音频。  <a href="#a4e4f6bed4b9e4ea553aa00ccf539c22a">更多...</a><br /></td></tr>
<tr class="separator:a4e4f6bed4b9e4ea553aa00ccf539c22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75d5047a2a889dbd890d116a6d0b550a"><td class="memItemLeft" align="right" valign="top">int MSPAPI&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qtts_8h.html#a75d5047a2a889dbd890d116a6d0b550a">QTTSSessionEnd</a> (const char *sessionID, const char *hints)</td></tr>
<tr class="memdesc:a75d5047a2a889dbd890d116a6d0b550a"><td class="mdescLeft">&#160;</td><td class="mdescRight">结束本次语音合成。  <a href="#a75d5047a2a889dbd890d116a6d0b550a">更多...</a><br /></td></tr>
<tr class="separator:a75d5047a2a889dbd890d116a6d0b550a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0812612ff738a828490e4e3db59767e8"><td class="memItemLeft" align="right" valign="top">int MSPAPI&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="qtts_8h.html#a0812612ff738a828490e4e3db59767e8">QTTSGetParam</a> (const char *sessionID, const char *paramName, char *paramValue, unsigned int *valueLen)</td></tr>
<tr class="memdesc:a0812612ff738a828490e4e3db59767e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取当前语音合成信息，如当前合成音频对应文本结束位置、上行流量、下行流量等。  <a href="#a0812612ff738a828490e4e3db59767e8">更多...</a><br /></td></tr>
<tr class="separator:a0812612ff738a828490e4e3db59767e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>iFLY Speech Synthesizer Header File </p>
<p>This file contains the quick application programming interface (API) declarations of TTS. Developer can include this file in your project to build applications. For more information, please read the developer guide.</p>
<p>Use of this software is subject to certain restrictions and limitations set forth in a license agreement entered into between iFLYTEK, Co,LTD. and the licensee of this software. Please refer to the license agreement for license use rights and restrictions.</p>
<p>Copyright (C) 1999 - 2015 by iFLYTEK, Co,LTD. All rights reserved.</p>
<dl class="section author"><dt>作者</dt><dd>MSC </dd></dl>
<dl class="section version"><dt>版本</dt><dd>5.0 </dd></dl>
<dl class="section date"><dt>日期</dt><dd>2015/03/19</dd></dl>
<dl class="section see"><dt>参见</dt><dd></dd></dl>
<p><b>History:</b><br />
 </p><table class="doxtable">
<tr>
<th>Version </th><th>Date </th><th>Author </th><th>Notes </th></tr>
<tr>
<td>5.0 </td><td>2015/03/19 </td><td>MSC </td><td>Create this file </td></tr>
</table>
</div><h2 class="groupheader">函数说明</h2>
<a class="anchor" id="a3fba4ad9599445073335851cc9479542"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* MSPAPI QTTSSessionBegin </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>errorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>开始一次语音合成，分配语音合成资源。 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">params[in]</td><td>传入的参数列表，支持以下参数： <table class="doxtable">
<tr>
<th>参数 </th><th>名称 </th><th>说明  </th></tr>
<tr>
<td>engine_type </td><td>引擎类型</td><td>可取值：<br />
cloud：在线引擎，<br />
local：离线引擎  </td></tr>
<tr>
<td>voice_name </td><td>发音人 </td><td>不同的发音人代表了不同的音色，<br />
如男声、女声、童声等，详细请参照《发音人列表》  </td></tr>
<tr>
<td>speed </td><td>语速 </td><td>合成音频对应的语速，<br />
取值范围：[0,100]，数值越大语速越快。<br />
默认值：50  </td></tr>
<tr>
<td>volume </td><td>音量 </td><td>合成音频的音量，<br />
取值范围：[0,100]，数值越大音量越大。<br />
默认值：50  </td></tr>
<tr>
<td>pitch </td><td>语调 </td><td>合成音频的音调，<br />
取值范围：[0,100]，数值越大音调越高。<br />
默认值：50  </td></tr>
<tr>
<td>tts_res_path </td><td>合成资源路径（ 仅离线引擎支持） </td><td>合成资源所在路径，支持fo 方式参数设置，对应格式如下：<br />
fo|[file_info]|[offset]|[length]<br />
（1）若是合并资源，则只需传入一个资源路径，如：fo| combined.jet|0|1024<br />
（2）若是分离资源，则需传两个资源路径，如：fo|common.jet|0|1024;fo| xiaoyan.jet|0|1024 </td></tr>
<tr>
<td>rdn </td><td>数字发音 </td><td>合成音频数字发音，支持参数，<br />
0 数值优先,<br />
1 完全数值,<br />
2 完全字符串，<br />
3 字符串优先  </td></tr>
<tr>
<td>rcn </td><td>1 的中文发音（ 仅离线引擎支持） </td><td>支持参数：<br />
0：表示发音为yao <br />
1：表示发音为yi </td></tr>
<tr>
<td>text_encoding </td><td>文本编码格式（必传） </td><td>合成文本编码格式，支持参数，GB2312，GBK，BIG5，UNICODE，GB18030，UTF8 </td></tr>
<tr>
<td>sample_rate </td><td>合成音频采样率 </td><td>合成音频采样率，支持参数，16000，8000 </td></tr>
<tr>
<td>background_sound </td><td>背景音（ 仅在线引擎支持） </td><td>合成音频中的背景音，支持参数，<br />
0：无背景音乐，<br />
1：有背景音乐 </td></tr>
<tr>
<td>aue </td><td>音频编码 </td><td>合成音频发往客户端时服务器采用的编解码算法和压缩等级，<br />
格式为：压缩算法;压缩等级，<br />
如aue=speex-wb;7 表示使用speex-wb 算法的等级7 对传输中的合成音频进行编解码。<br />
编码算法：raw，speex，speex-wb，ico<br />
编码等级：<br />
raw：无等级。<br />
speex 系列：0-10；<br />
1、aue=raw是对合成音频不进行压缩；16BitPCM 格式的音频可以使用speex系列压缩算法进行压缩， <br />
如aue=speex-wb;7 ，服务器会选择speex-wb算法使用压缩等级7对合成音频进行压缩后再传给MSC，MSC会解压缩还原成PCM 格式的音频后返回给用户。<br />
2、对于等级为负的情况，客户端不会将来自服务器的合成音频进行解压缩，而是将压缩音频直接返回给用户，<br />
如用户选择aue=speech-wb;7，用户得到的将是speech-wb 等级7 的压缩音频。<br />
3、<b>ico对应sample_rate=16000</b><br />
 </td></tr>
<tr>
<td>ttp </td><td>文本类型（仅在线引擎支持）</td><td>合成文本类型，支持参数，<br />
text: 普通格式文本 <br />
ssml：ssml 格式文本 </td></tr>
<tr>
<td>speed_increase </td><td>语速增强（ 仅离线引擎支持） </td><td>通过设置此参数控制合成音频语速基数，取值范围，<br />
1：正常 2：2 倍语速 4：4 倍语速 </td></tr>
<tr>
<td>effect </td><td>合成音效（ 仅离线引擎支持） </td><td>合成音频的音效，取值范围，<br />
0 无音效，1 忽远忽近，2 回声，3 机器人，4 合唱，5 水下，6 混响，7 阴阳怪气 </td></tr>
</table>
<b>注意：</b>没有默认值的参数必须由外部设定其值。<br />
 <b>发音人列表:</b><br />
 <table class="doxtable">
<tr>
<th>发音人 </th><th>参数名称 </th><th>语种/方言 </th><th>音色 </th></tr>
<tr>
<td>小燕 </td><td>xiaoyan </td><td>普通话 </td><td>青年女声 </td></tr>
<tr>
<td>燕平 </td><td>yanping </td><td>普通话 </td><td>青年女声 </td></tr>
<tr>
<td>晓峰 </td><td>xiaofeng </td><td>普通话 </td><td>青年男声 </td></tr>
<tr>
<td>晓婧 </td><td>jinger </td><td>普通话 </td><td>青年女声 </td></tr>
<tr>
<td>唐老鸭 </td><td>donaldduck </td><td>普通话 </td><td>卡通 </td></tr>
<tr>
<td>许小宝 </td><td>babyxu </td><td>普通话 </td><td>童声 </td></tr>
<tr>
<td>楠楠 </td><td>nannan </td><td>普通话 </td><td>童声 </td></tr>
<tr>
<td>晓梦 </td><td>xiaomeng </td><td>普通话 </td><td>青年女声 </td></tr>
<tr>
<td>晓琳 </td><td>xiaolin </td><td>台湾普通话 </td><td>青年女声 </td></tr>
<tr>
<td>晓倩 </td><td>xiaoqian </td><td>东北话 </td><td>青年女声 </td></tr>
<tr>
<td>晓蓉 </td><td>xiaorong </td><td>四川话 </td><td>青年女声 </td></tr>
<tr>
<td>小坤 </td><td>xiaokun </td><td>河南话 </td><td>青年男声 </td></tr>
<tr>
<td>小强 </td><td>xiaoqiang </td><td>湖南话 </td><td>青年男声 </td></tr>
<tr>
<td>晓美 </td><td>xiaomei </td><td>粤语 </td><td>青年女声 </td></tr>
<tr>
<td>大龙 </td><td>dalong </td><td>粤语 </td><td>青年男声 </td></tr>
<tr>
<td>Catherine </td><td>catherine </td><td>美式纯英文 </td><td>青年女声 </td></tr>
<tr>
<td>John </td><td>john </td><td>美式纯英文 </td><td>青年男声 </td></tr>
<tr>
<th><b>以下发音人仅在线提供</b> </th></tr>
<tr>
<td>henry </td><td>henry </td><td>英文 </td><td>青年男声 </td></tr>
<tr>
<td>玛丽安 </td><td>Mariane </td><td>法语 </td><td>青年女声 </td></tr>
<tr>
<td>阿拉本 </td><td>Allabent </td><td>俄罗斯语 </td><td>青年女声 </td></tr>
<tr>
<td>加芙列拉 </td><td>Gabriela </td><td>西班牙语 </td><td>青年女声 </td></tr>
<tr>
<td>艾伯哈 </td><td>Abha </td><td>印地语 </td><td>青年女声 </td></tr>
<tr>
<td>小云 </td><td>XiaoYun </td><td>越南语 </td><td>青年女声 </td></tr>
</table>
</td></tr>
    <tr><td class="paramname">errorCode[out]</td><td>函数调用成功则其值为MSP_SUCCESS，否则返回错误代码，<a href="http://open.voicecloud.cn/index.php/default/doccenter/doccenterInner?itemTitle=ZmFx&amp;anchor=Y29udGl0bGU2Ng==" target="_blank">详见错误码列表</a>。 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>函数调用成功返回字符串格式的sessionID，失败返回NULL。sessionID是本次合成的句柄。 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>参数只在本次合成中生效。</dd></dl>
<dl class="section see"><dt>参见</dt><dd><pre class="fragment">const char* params= "engine_type = local, voice_name=xiaoyan, tts_res_path =fo|res\\tts\\xiaoyan.jet;fo|res\\tts\\common.jet, sample_rate = 16000" ;
int ret = 0;
const char* sessionID = QTTSSessionBegin( params, &amp;ret );
if( MSP_SUCCESS != ret )
{
    printf( "QTTSSessionBegin failed, error code is: %d", ret );
}
.</pre> </dd></dl>

</div>
</div>
<a class="anchor" id="a5b7d146d6a35341d4d73efd720ae987b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int MSPAPI QTTSTextPut </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sessionID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>textString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>textLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>params</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>写入要合成的文本。 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sessionID[in]</td><td>由QTTSSessionBegin返回的句柄。 </td></tr>
    <tr><td class="paramname">textString[in]</td><td>字符串指针。指向待合成的文本字符串。 </td></tr>
    <tr><td class="paramname">textLen[in]</td><td>合成文本长度,最大支持8192个字节（不含’\0’）。 </td></tr>
    <tr><td class="paramname">params[in]</td><td>本次合成所用的参数，只对本次合成的文本有效。目前为空 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>函数调用成功则其值为MSP_SUCCESS，否则返回错误代码，<a href="http://open.voicecloud.cn/index.php/default/doccenter/doccenterInner?itemTitle=ZmFx&amp;anchor=Y29udGl0bGU2Ng==" target="_blank">详见错误码列表</a>。 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>本接口不支持连续被调用。调用本接口写入合成文本后，用户需要反复调用QTTSAudioGet 接口来获取音频。</dd></dl>
<dl class="section see"><dt>参见</dt><dd><pre class="fragment">const char* text_str = "科大讯飞股份有限公司";
unsigned int text_len = strlen( textString ); //textLen 参数为合成文本所占字节数
int ret = QTTSTextPut( sessionID, text_str, text_len, NULL );
if( MSP_SUCCESS != ret )
{
    printf( "QTTSTextPut failed, error code is: %d", ret );
}
.</pre> </dd></dl>

</div>
</div>
<a class="anchor" id="a4e4f6bed4b9e4ea553aa00ccf539c22a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const void* MSPAPI QTTSAudioGet </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sessionID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>audioLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>synthStatus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>errorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>获取合成音频。 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sessionID[in]</td><td>由QTTSSessionBegin返回的句柄。 </td></tr>
    <tr><td class="paramname">audioLen[out]</td><td>合成音频长度，单位字节。 </td></tr>
    <tr><td class="paramname">synthStatus[out]</td><td>合成音频状态，可能的值如下： <table class="doxtable">
<tr>
<th>枚举常量 </th><th>简介  </th></tr>
<tr>
<td>MSP_TTS_FLAG_STILL_HAVE_DATA = 1 </td><td>音频还没取完，还有后继的音频  </td></tr>
<tr>
<td>MSP_TTS_FLAG_DATA_END = 2 </td><td>音频已经取完  </td></tr>
</table>
</td></tr>
    <tr><td class="paramname">errorCode[out]</td><td>函数调用成功则其值为MSP_SUCCESS，否则返回错误代码，<a href="http://open.voicecloud.cn/index.php/default/doccenter/doccenterInner?itemTitle=ZmFx&amp;anchor=Y29udGl0bGU2Ng==" target="_blank">详见错误码列表</a>。 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>函数调用成功且有音频数据时返回非空指针。调用失败或无音频数据时，返回NULL。 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>用户需要反复获取音频，直到音频获取完毕或函数调用失败。在重复获取音频时，如果暂未获得音频数据，需要将当前线程sleep一段时间，以防频繁调用浪费CPU资源。</dd></dl>
<dl class="section see"><dt>参见</dt><dd><pre class="fragment">FILE* fp = fopen("tts.pcm", "wb");
while (1)
{
    const void * data = QTTSAudioGet(sessionID, &amp;audio_len, &amp;synth_status, &amp;ret);
    if (NULL != data)
    {
        fwrite(data, audio_len, 1, fp);
    }
    if (MSP_TTS_FLAG_DATA_END == synth_status || MSP_SUCCESS != ret)
    {
        break;
    }
}
fclose(fp);
.</pre> </dd></dl>

</div>
</div>
<a class="anchor" id="a75d5047a2a889dbd890d116a6d0b550a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int MSPAPI QTTSSessionEnd </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sessionID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>hints</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>结束本次语音合成。 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sessionID[in]</td><td>由QTTSSessionBegin返回的句柄。 </td></tr>
    <tr><td class="paramname">hints[in]</td><td>结束本次语音合成的原因描述，为用户自定义内容。 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>函数调用成功则其值为MSP_SUCCESS，否则返回错误代码，<a href="http://open.voicecloud.cn/index.php/default/doccenter/doccenterInner?itemTitle=ZmFx&amp;anchor=Y29udGl0bGU2Ng==" target="_blank">详见错误码列表</a>。 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>本接口和QTTSSessionBegin对应，调用此接口后，该句柄对应的相关资源（参数，合成文本，实例等）都会被释放，用户不应再使用该句柄。</dd></dl>
<dl class="section see"><dt>参见</dt><dd><pre class="fragment">int ret = QTTSSessionEnd ( sessionID, "normal end" );
if( MSP_SUCCESS != ret )
{
    printf( "QTTSSessionEnd failed, error code is: %d", ret );
}
.</pre> </dd></dl>

</div>
</div>
<a class="anchor" id="a0812612ff738a828490e4e3db59767e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int MSPAPI QTTSGetParam </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sessionID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>paramName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>paramValue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>valueLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>获取当前语音合成信息，如当前合成音频对应文本结束位置、上行流量、下行流量等。 </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">sessionID[in]</td><td>由QTTSSessionBegin返回的句柄，如果为NULL，获取MSC的设置信息。 </td></tr>
    <tr><td class="paramname">paramName[in]</td><td>参数名，一次调用只支持查询一个参数。参数如下： <table class="doxtable">
<tr>
<th>参数名称 </th><th>意义  </th></tr>
<tr>
<td>upflow </td><td>上行数据量。  </td></tr>
<tr>
<td>downflow </td><td>下行数据量  </td></tr>
<tr>
<td>ced </td><td>当前合成音频对应文本结束位置  </td></tr>
</table>
</td></tr>
    <tr><td class="paramname">paraValue[in/out]</td><td>输入:buffer首地址 <br />
输出:向该buffer写入获取到的信息 </td></tr>
    <tr><td class="paramname">valueLen[in/out]</td><td>输入:buffer的大小 <br />
输出:信息实际长度(不含'\0') </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>函数调用成功则其值为MSP_SUCCESS，否则返回错误代码，<a href="http://open.voicecloud.cn/index.php/default/doccenter/doccenterInner?itemTitle=ZmFx&amp;anchor=Y29udGl0bGU2Ng==" target="_blank">详见错误码列表</a>。 </dd></dl>
<dl class="section remark"><dt>备注</dt><dd>以查询上行流量为例，获取到的是本次合成当前累计的上行流量。下行流量查询与此相似。</dd></dl>
<dl class="section see"><dt>参见</dt><dd><pre class="fragment">const char* para_name = "upflow";
char  para_value[ 32 ] = {'\0'};
unsigned int value_len = 32;
int ret = QTTSGetParam ( sessionID, para_name, para_value, &amp;value_len );
if( MSP_SUCCESS  != ret )
{
    printf( "QTTSGetParam failed, error code is: %d", ret );
}
.</pre> </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
生成于 2017年 五月 25日 星期四 19:20:46 , 为 MSC for Windows&amp;Linux API使用  &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9
</small></address>
</body>
</html>
